package com.bluesky.plum.uimodels.standard;

import com.bluesky.plum.richdomain.RichDomainField;
import com.bluesky.plum.richdomain.RichDomainMethod;
import com.bluesky.plum.uimodels.standard.components.containers.form.Form;

public interface UIComponentBuilder {
	UIComponent createComponent(RichDomainField field);

	FieldUIComponent[] createComponents(RichDomainField[] fields);

	UIComponent createNonFieldComponent(StandardUIComponentType type);

	/**
	 * create a non-empty form, which content depends on the rdm paameter.
	 * 
	 * @param rdm
	 * @return
	 */
	Form createForm(RichDomainMethod rdm);

}
